package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootZj;
import org.footballmanager.pandafootball.system.domain.enums.BFLX;
import org.footballmanager.pandafootball.system.form.impl.FootZjSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootZjService extends BaseService<FootZj> {
    /**
     * 根据用户VIP等级分配所获得的资金
     *
     * @param userId1 用户主键1
     * @param userId2 用户主键2
     * @param type    2代表qd1胜利,1代表平,0代表qd1队负
     * @param isadd   是否增加
     * @param bflx    报分类型
     * @param request 请求
     */
    void getMoney(Long userId1, Long userId2, int type, boolean isadd, BFLX bflx, HttpServletRequest request);

    /**
     * 发送资金变动说明
     *
     * @param userId  用户主键
     * @param jg      要变动的资金数额
     * @param isz     是否是增加资金
     * @param bdsm    变动说明
     * @param request 请求
     */
    void sendZj(Long userId, Double jg, boolean isz, String bdsm, HttpServletRequest request);

    /**
     * 根据所给money发放任务奖励
     *
     * @param userId   用户主键
     * @param money    获得的奖励数
     * @param isReshen 是否是热身赛
     * @param request  请求
     */
    void getMissionMoney(Long userId, Double money, Boolean isReshen, HttpServletRequest request);

    /**
     * 翻页方法
     *
     * @param footZjSearchForm 条件
     * @return 列表
     */
    List<FootZj> findall(FootZjSearchForm footZjSearchForm);

    /**
     * 查询
     *
     * @param entityname       实体类名
     * @param map              参数
     * @param footZjSearchForm 条件
     */
    void search(String entityname, Model map, FootZjSearchForm footZjSearchForm);

    /**
     * 删除所有
     *
     * @param footZjSearchForm 条件
     * @param request          请求
     */
    void deleteAll(FootZjSearchForm footZjSearchForm, HttpServletRequest request);

    /**
     * 删除对应用户下的所有记录
     *
     * @param userId  用户主键
     * @param request 请求
     */
    void deleteByUserId(Long userId, HttpServletRequest request);
}